/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package dao;

import java.sql.SQLException;
import java.util.Vector;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
import javax.swing.JOptionPane;
import model.UnidadeGestora;
import util.Conexao;

/**
 *
 * @author Ewerton
 */
public class UnidadeGestoraDAO extends GenericDao<UnidadeGestora> {
    Conexao c = new Conexao();
    EntityManagerFactory factory = Persistence.createEntityManagerFactory("Controle_de_EstoquePU");
    EntityManager manager = factory.createEntityManager();
    
    public void salvar(UnidadeGestora unidade){
        gravar(unidade);
    }

    public void alterar(UnidadeGestora unidade){
        atualizar(unidade);
    }

    public void excluir(UnidadeGestora unidade){
        UnidadeGestora u = listar(unidade);
        remover(u);
    }

    public UnidadeGestora listar(UnidadeGestora unidade){
        return getEntityManager().find(UnidadeGestora.class, unidade.getIdUnidGestora());
    }
    
    public UnidadeGestora buscarPorUnidade(String nome){
        Query query = manager.createQuery("SELECT u FROM UnidadeGestora u WHERE u.razao = '"+nome+"'");
        UnidadeGestora u = (UnidadeGestora) query.getSingleResult();
        if(u == null){
            JOptionPane.showMessageDialog(null, "Unidade Gestora não encontrado.");
            return null;
        }
        else{
            return u;
        }
    }
    
    public Vector<UnidadeGestora> listaTodos() {
      c.conecta();
      Vector<UnidadeGestora> resultados = new Vector<UnidadeGestora>();
      try {
         c.executeSQL("SELECT * FROM unidade_gestora ORDER BY razao");
         while (c.resultset.next()) {
            UnidadeGestora temp = new UnidadeGestora();
            temp.setRazao(c.resultset.getString("RAZAO"));
            resultados.add(temp);
         }
         return resultados;
      } catch (SQLException e) {
         JOptionPane.showMessageDialog(null, e);
         return null;
      }
   }
        
}
